Method and apparatus for generating parity information for error correction

ABSTRACT

A method and apparatus for generating parity information for error correction using a parity check matrix, rows of which correspond to a message word length m, columns of which correspond to a codeword length n, the number of “ones” included in the rows and columns is fixed, and remaining elements are all “zeros”, the error correction method includes obtaining a p number of parity information using the parity check matrix and predetermined message data S, wherein a matrix including a k number of columns from a (n-m+1)-th element of the parity check matrix is created with a lower triangular matrix form, all elements within the upper triangular portion of the lower triangular form are “zeros”, using a column and row permutation method.

CROSS-REFERENCE TO RELATED APPLICATIONS

[0001] This application claims the priority of Korean Patent Application No. 2002-82091, filed on Dec. 21, 2002, in the Korean Intellectual Property Office, the disclosure of which is incorporated herein in its entirety by reference.

BACKGROUND OF THE INVENTION

[0002] 1. Field of the Invention

[0003] The present invention relates to error correction and signal detection, and more particularly, to a method and apparatus for generating parity information for error correction.

[0004] 2. Description of the Related Art

[0005] A coding method using Low Density Parity Check (LDPC) codes for error correction creates a parity check code including predetermined numbers of “ones” in the rows and columns of an error correction code (ECC) block, and generates parity information using the parity check code.

[0006] More specifically, a parity check matrix H is created that includes a predetermined number of “ones” in the matrix columns and rows, and a codeword x satisfying the equation “Hx=0” is obtained. Here, the codeword x relates original data to parity information. For performing this calculation, the parity check matrix H is first transformed into a generator matrix G using Gaussian elimination, or transformed into a lower triangular form.

[0007] However, the generator matrix G requires large calculations due to the absence of sparseness of the original matrix. Also, the lower triangular form requires a complicated calculation process.

[0008] A conventional parity check matrix H is shown in FIG. 1. The following Equation 1 represents a lower triangular form of the calculation process for generating a codeword x satisfying “Hx=0”. As apparent from Equation 1, the calculation process is complicated. $\begin{matrix} {\left. {H\begin{bmatrix} {A\quad B\quad T} \\ {C\quad D\quad E} \end{bmatrix}}\rightarrow{{Hs}\begin{bmatrix} 1 & 0 \\ {- {ET}^{- 1}} & 1 \end{bmatrix}} \right. = \begin{bmatrix} {\quad {A\quad B\quad T}} \\ {{{- {ET}^{- 1}}A} + C - {{ET}^{- 1}B} + {D0}} \end{bmatrix}} & (1) \end{matrix}$

 P ₁=Φ⁻¹ , Φ=−ET ⁻¹ B+D, and P ₂ =−T ⁻¹ are obtained, using Equation 1.

[0009] A basic concept for LDPC coding is disclosed in “Good Error Correction Codes Based on Very Sparse Matrices,” by D. J. MacKay, the IEEE Trans. on Information Theory, vol. 45, No. 2, pp. 399-431, 1999, and a technique for coupling the H-matrix is disclosed in “Efficient Encoding of Low Density Parity Check Codes,” T. Richardson and R. Urbanke, the IEEE Trans. on Information Theory, vol. 47, No. 2, pp. 638-656, 2001.

SUMMARY OF THE INVENTION

[0010] The present invention provides a method and apparatus for generating parity information for error correction.

[0011] The present invention also provides a method and apparatus for efficiently generating parity information for error correction in a Low Density Parity Check (LDPC) coding.

[0012] According to an aspect of the present invention, there is provided an error correction method for generating parity information using a parity check matrix, rows of which correspond to a message word length m, columns of which correspond to a codeword length n, the number of “ones” included in the rows and columns is fixed, and remaining elements that are all “zeros”, the error correction method including obtaining a p number of parity information using the parity check matrix and predetermined message data S, wherein a matrix including a k number of columns from a (n-m+1)-th element of the parity check matrix is created with a lower triangular matrix form, all elements within the upper triangular portion of the lower triangular matrix form are “zeros”, using a column and row permutation method.

[0013] When generating the parity information, a k number of parity information among the p number of parity information is obtained using a backward substitution method according to an equation: $P_{l} = {{{- \overset{n - m}{\underset{j = 1}{Q}}}H_{l,j}S_{j}} - {\overset{l - 1}{\underset{j = 1}{Q}}H_{l,{j + n - m}}{p_{j}.}}}$

[0014] Additional aspects and/or advantages of the invention will be set forth in part in the description which follows and, in part, will be obvious from the description, or may be learned by practice of the invention.

[0015] According to another aspect of the present invention, there is provided a method of generating parity information including generating a parity check matrix, generating a lower triangular matrix based upon the parity check matrix, generating a C matrix based upon the parity check matrix, performing a backward substitution based upon a message bit and the lower triangular matrix to obtain a first number of parity bit values, and obtaining a second number of parity bit values based upon the C matrix, wherein when the second number of parity bit values is added to the first number of parity bit values, a result is obtained that equals a predetermined number of parity bit values.

[0016] An error correction method for generating parity information, using a parity check matrix, rows of which correspond to a message word length m, columns of which correspond to a codeword length n, the number of “ones” included in the rows and columns is fixed, and remaining elements are all “zeros”, the error correction method including generating the parity check matrix, the rows of which correspond to the message word length, the columns of which correspond to the codeword length, the number of “ones” included in the rows being the same as that included in the column, and the remaining elements of which are all “zeros”; generating a lower triangular matrix, using a k number of columns from a (n-m+1)-th column, so that all elements within the upper triangular area of the lower triangular matrix are zero, when the parity check matrix is used; generating a second matrix, using the remaining area except for the lower triangular matrix; performing backward substitution calculation using the lower triangular matrix and message data S, and obtaining a k number of parity bit values; and obtaining remaining parity bit values except for the k number of parity bit values obtained by backward substitution calculation, among a n-m number of parity bit values, using the second matrix.

[0017] According to still another aspect of the present invention, there is provided an error correction apparatus for generating parity information using a parity check matrix, rows of which correspond to a message word length m, columns of which correspond to a codeword length n, the number of “ones” included in rows being the same as that included in columns, and remaining elements are all “zeros.” The error correction apparatus includes a parity check matrix generator, which generates the parity check matrix, the rows of which correspond to the message word length, the columns of which correspond to the codeword length, the number of “ones” included in the rows being the same as that included in the columns, and the remaining elements of which are all “zeros”, a first matrix generator, which generates a lower triangular matrix, all elements within an upper triangular portion of which are zero, using a k number of columns from a (n-m+1)-th column, a second matrix generator, which generates a second matrix, using a remaining portion except for the lower triangular matrix created by the first matrix generator, a backward substitution calculator, which performs a backward substitution calculation using the lower triangular matrix area generated by the first matrix generator and predetermined message data, and obtains a k number of parity bit values, and a lower parity calculator, which obtains remaining parity bit values except for the k number of parity bit values obtained by the backward substitution calculator, among a n-m number of parity bit values, using the second matrix.

BRIEF DESCRIPTION OF THE DRAWINGS

[0018] The above and/or other features and advantages of the present invention will become more apparent and readily appreciated by describing in detail exemplary embodiments thereof with reference to the attached drawings in which:

[0019]FIG. 1 shows an H-matrix for generating parity information for error correction, according to a conventional technique;

[0020]FIG. 2 is a block diagram of an apparatus for generating parity information for error correction, according to an embodiment of the present invention; and

[0021]FIG. 3 shows an H-matrix for generating parity information for error correction, according to an embodiment of the present invention.

DETAILED DESCRIPTION OF THE EMBODIMENTS

[0022] Reference will now be made in detail to the embodiments of the present invention, examples of which are illustrated in the accompanying drawings, wherein like reference numerals refer to the like elements throughout. The embodiments are described below to explain the present invention by referring to the figures.

[0023]FIG. 2 is a block diagram of an apparatus for generating parity information for error correction, according to an embodiment of the present invention. The parity information generation apparatus comprises a parity check matrix generator 210, a first matrix calculator 220, a second matrix calculator 230, a backward substitution calculator 240, and a lower parity calculator 250. The operations of the parity information generation apparatus will be described with reference to FIGS. 2 and 3.

[0024] Referring to FIGS. 2 and 3, the parity check matrix generator 210 generates a parity check matrix (shown in FIG. 3), rows of which correspond to message word lengths, columns of which correspond to codeword lengths, in which the number of “ones,” included in the rows is the same as that included in the columns, and the remaining elements (i.e., excepting the “ones”) are all “zero”. The first matrix calculator 220 generates a lower triangular matrix, corresponding to a T matrix shown in FIG. 3. The T matrix is generated using a column and row permutation method in which the columns and the rows are interchanged using the parity check matrix having a column length n and a row length m, wherein all elements within the right and upper triangular area of a portion of the parity check matrix consisting of a k number of columns from a (n-m+1)-th column of the lower triangular matrix are “zero”. The first matrix calculator 220 creates the lower triangular matrix so that “zeros” are distributed in the right upper portion of the parity check matrix as much as possible, and so that all “ones” within the portion of the T matrix including a k number of columns among columns corresponding to a n-m number of parities are located lower than diagonal elements in the portion of the parity check matrix corresponding to a lower triangular form of parities.

[0025] The second matrix calculator 230 creates a second matrix, using the remaining portion of the parity check matrix except for the lower triangular matrix (the “T” matrix of FIG. 3) created by the first matrix calculator 220. The second matrix is represented by the “C” matrix in FIG. 3. The “C” matrix created by the second matrix calculator 230 has a scaled-down form of an existing H-matrix similar to that shown in FIG. 1.

[0026] The backward substitution calculator 240 obtains a k number of parity information by performing a backward substitution calculation using a message bit S and the lower triangular form of the matrix area generated by the first matrix calculator 220. This calculation is performed using Equation 2 and the k number of parity bit values among the entire p parity bit values are obtained. $\begin{matrix} {P_{l} = {{{- \overset{n - m}{\underset{j = 1}{Q}}}H_{l,j}S_{j}} - {\overset{l - 1}{\underset{j = 1}{Q}}H_{l,{j + n - m}}p_{j}}}} & (2) \end{matrix}$

[0027] The lower parity calculator 250 obtains the remaining parity bit values except for the k number of parity bit values obtained by the backward substitution calculator 240 among the n-m number of parity bit values, using the second matrix generated by the second matrix calculator 230. That is, because the “C” matrix corresponding to the second matrix is a scaled-down form of the existing H-matrix, the remaining parity bit values can be obtained using a Gaussian elimination method or a general method such as Equation 1 above.

[0028] Accordingly, the present invention can be efficiently applied to technical fields requiring fast encoding.

[0029] As described above, according to the present invention, it is possible to reduce the amount of calculation and to efficiently generate parity information for error correction, by generating parity information using a parity check matrix for implementing a Low Density Parity Check (LDPC) encoder, to thereby make the calculation amount approximate to n orders corresponding to the column length of the matrix.

[0030] While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it will be understood by those of ordinary skill in the art that various changes in form and details may be made therein without departing from the spirit and scope of the present invention as defined by the following claims and their equivalents. 

What is claimed is:
 1. An error correction method of generating parity information using a parity check matrix, rows of which correspond to a message word length m, columns of which correspond to a codeword length n, a number of “ones” included in the rows and columns is fixed, and remaining elements are all “zeros”, the error correction method comprising: obtaining a p number of parity information using the parity check matrix and a predetermined message data S, wherein a matrix including a k number of columns from a (n-m+1)-th element of the parity check matrix is created with a lower triangular matrix form, all elements within the upper triangular portion of the matrix are “zeros”, using a column and row permutation method.
 2. The error correction method of claim 1, wherein when obtaining the parity information, a k number of parity information among the p number of parity information is obtained using a backward substitution method according to an equation: $P_{l} = {{{- \overset{n - m}{\underset{j = 1}{Q}}}H_{l,j}S_{j}} - {\overset{l - 1}{\underset{j = 1}{Q}}H_{l,{j + n - m}}p_{j}}}$


3. The error correction method of claim 1, wherein the lower triangular matrix is created so that “zeros” are distributed in the right and upper portion of the lower triangular matrix, and all “ones” within a matrix including a k number of columns among columns corresponding to an n-m number of parities are located lower than diagonal elements of a matrix corresponding to a lower triangular form of parities.
 4. The error correction method of claim 1, wherein when obtaining the parity information, a p-k number of parity information among the p number of parity information are obtained, using a remaining matrix except for the lower triangular matrix, by one of a Gaussian elimination method and a general method using an equation: $\left. {H\begin{bmatrix} {A\quad B\quad T} \\ {C\quad D\quad E} \end{bmatrix}}\rightarrow{{Hs}\begin{bmatrix} 1 & 0 \\ {- {ET}^{- 1}} & 1 \end{bmatrix}} \right. = \begin{bmatrix} {\quad {A\quad B\quad T}} \\ {{{- {ET}^{- 1}}A} + C - {{ET}^{- 1}B} + {D0}} \end{bmatrix}$

P ₁=Φ⁻¹ , Φ=−ET ⁻¹ B+D, and P ₂ =−T ⁻¹
 5. An error correction method for generating parity information, using a parity check matrix, rows of which correspond to a message word length m, columns of which correspond to a codeword length n, a number of “ones” included in the rows and columns is fixed, and remaining elements are all “zeros”, the error correction method comprising: generating the parity check matrix, the rows of which correspond to the message word length, the columns of which correspond to the codeword length, the number of “ones” included in the rows being the same as that included in the columns, and the remaining elements are all “zeros”; generating a lower triangular matrix, using a k number of columns from a (n-m+1)-th column of the parity check matrix, so that all elements within an upper triangular area of the lower triangular matrix are zero, when the parity check matrix is used; generating a second matrix, using the remaining area of the parity check matrix except for the lower triangular matrix; performing a backward substitution calculation using the lower triangular matrix and a message data S, and obtaining a k number of parity bit values; and obtaining remaining parity bit values except for the k number of parity bit values obtained by backward substitution calculation, among a n-m number of parity bit values, using the second matrix.
 6. The error correction method of claim 5, wherein when generating the lower triangular matrix, all “ones” within the lower triangular matrix including the k number of columns among columns corresponding to a n-m number of parities are located lower than diagonal elements of a matrix corresponding to a lower triangular form of parities.
 7. The error correction method of claim 5, wherein “zeros” are distributed in the right and upper portion of the lower triangular matrix.
 8. The error correction method of claim 5, wherein when generating the parity information, the k number of parity information among a p number of parity information is obtained by a backward substitution method, using an equation: $P_{l} = {{{- \overset{n - m}{\underset{j = 1}{Q}}}H_{l,j}S_{j}} - {\overset{l - 1}{\underset{j = 1}{Q}}H_{l,{j + n - m}}p_{j}}}$


9. The error correction method of claim 5, wherein the second matrix has a scaled-down form of a predetermined H-matrix.
 10. The error correction method of claim 9, wherein when generating the parity information, a p-k number of parity information among the p number of parity information are obtained, using the second matrix, by one of a Gaussian elimination method and a general method using an equation: $\left. {H\begin{bmatrix} {A\quad B\quad T} \\ {C\quad D\quad E} \end{bmatrix}}\rightarrow{{Hs}\begin{bmatrix} 1 & 0 \\ {- {ET}^{- 1}} & 1 \end{bmatrix}} \right. = \begin{bmatrix} {\quad {A\quad B\quad T}} \\ {{{- {ET}^{- 1}}A} + C - {{ET}^{- 1}B} + {D0}} \end{bmatrix}$ P₁ = Φ⁻¹, Φ = −ET⁻¹B + D, and  P₂ = −T⁻¹.  


11. An error correction apparatus for generating parity information using a parity check matrix, rows of which correspond to a message word length m, columns of which correspond to a codeword length n, the number of “ones” included in rows being the same as that included in columns, and remaining elements are all “zeros”, the error correction apparatus comprising: a parity check matrix generator, which generates the parity check matrix; a first matrix generator, which generates a lower triangular matrix, all elements within an upper triangular portion of which are zero, corresponding to a k number of columns from a (n-m+1)-th column of the parity check matrix; a second matrix generator, which generates a second matrix, using a remaining portion of the parity check matrix except for the lower triangular matrix created by the first matrix generator; a backward substitution calculator, which performs a backward substitution calculation using the lower triangular matrix area generated by the first matrix generator and predetermined message data, and obtains a k number of parity bit values; and a lower parity calculator, which obtains remaining parity bit values except for the k number of parity bit values obtained by the backward substitution calculator, among an n-m number of parity bit values, using the second matrix.
 12. The error correction apparatus of claim 11, wherein the first matrix generator creates the lower triangular matrix so that all “ones” within the lower triangular matrix including a k number of columns among columns corresponding to a n-m number of parities are located lower than diagonal elements of a matrix corresponding to a lower triangular form of parities.
 13. The error correction apparatus of claim 11, wherein the lower triangular matrix is created so that “zeros” are distributed in the right and upper portion of the lower triangular matrix.
 14. The error correction apparatus of claim 11, wherein the backward substitution calculator obtains the k number of parity bit values among a p number of parity bit values, by the backward substitution calculation using an equation: $P_{l} = {{{- \overset{n - m}{\underset{j = 1}{Q}}}H_{l,j}S_{j}} - {\overset{l - 1}{\underset{j = 1}{Q}}H_{l,{j + n - m}}p_{j}}}$


15. The error correction apparatus of claim 11, wherein the second matrix generated by the second matrix generator has a scaled-down form of an existing H-matrix.
 16. The error correction apparatus of claim 11, wherein the lower parity calculator obtains a p-k number of parity information among a p number of parity information, using the second matrix, by one of a Gaussian elimination method and a general method using an equation: $\left. {H\begin{bmatrix} {A\quad B\quad T} \\ {C\quad D\quad E} \end{bmatrix}}\rightarrow{{Hs}\begin{bmatrix} 1 & 0 \\ {- {ET}^{- 1}} & 1 \end{bmatrix}} \right. = \begin{bmatrix} {\quad {A\quad B\quad T}} \\ {{{- {ET}^{- 1}}A} + C - {{ET}^{- 1}B} + {D0}} \end{bmatrix}$   (P₁ = Φ⁻¹, Φ = −ET⁻¹B + D, and  P₂ = −T⁻¹).  


17. An apparatus to generate parity information, the apparatus comprising: a parity check matrix generator that generates a parity check matrix including “ones” evenly distributed among parity check matrix rows and columns; a first matrix calculator that generates a lower triangular matrix based upon a first predetermined portion of the parity check matrix; a backward substitution calculator that generates a first number of parity bit values based upon a message bit and the lower triangular matrix; a second matrix calculator that generates a C matrix based upon a second predetermined portion of the parity check matrix; and a lower parity calculator that generates a second number of parity bit values based upon the C matrix.
 18. The apparatus of claim 17, wherein the first matrix calculator generates the lower triangular matrix based upon a column and row permutation method that interchanges the columns and rows based upon a predetermined portion of the parity check matrix.
 19. The apparatus of claim 17, wherein the backward substitution calculator generates the first number of parity values based upon an equation: $P_{l} = {{{- \overset{n - m}{\underset{j = 1}{Q}}}H_{l,j}S_{j}} - {\overset{l - 1}{\underset{j = 1}{Q}}H_{l,{j + n - m}}{p_{j}.}}}$


20. The apparatus of claim 17, wherein the C matrix has a scaled down form of a predetermined H matrix.
 21. The apparatus of claim 20, wherein the second predetermined portion of the parity check matrix is the parity check matrix minus the first predetermined portion of the parity check matrix.
 22. The apparatus of claim 21, wherein the lower parity calculator generates the second number of parity bit values based upon an equation: $\left. {H\begin{bmatrix} A & B & T \\ C & D & E \end{bmatrix}}\rightarrow{{Hs}\begin{bmatrix} 1 & 0 \\ {- {ET}^{- 1}} & 1 \end{bmatrix}} \right. = \begin{bmatrix} A & B & T \\ {{{- {ET}^{- 1}}A} + C} & {{{- {ET}^{- 1}}B} + D} & 0 \end{bmatrix}$

(P ₁=Φ⁻¹ , Φ=−ET ⁻¹ B+D, and P ₂ =−T ⁻¹). 